home *** CD-ROM | disk | FTP | other *** search
/ Komputer for Alle 1999 #5 / 1999 CD 5 (black).iso / Delphi3 / install / data.z / DBCOMMON.INT < prev    next >
Encoding:
Text File  |  1997-08-05  |  3.3 KB  |  105 lines

  1.  
  2. {*******************************************************}
  3. {                                                       }
  4. {       Delphi Visual Component Library                 }
  5. {       Additional BDE dependent Classes                }
  6. {                                                       }
  7. {       Copyright (c) 1995,96 Borland International     }
  8. {                                                       }
  9. {*******************************************************}
  10.  
  11. unit DBCommon;
  12.  
  13. interface
  14.  
  15. uses Windows, Classes, DB, BDE;
  16.  
  17. { FieldType Mappings }
  18.  
  19. const
  20.   FldTypeMap: array[TFieldType] of Byte = (
  21.     fldUNKNOWN, fldZSTRING, fldINT16, fldINT32, fldUINT16, fldBOOL,
  22.     fldFLOAT, fldFLOAT, fldBCD, fldDATE, fldTIME, fldTIMESTAMP, fldBYTES,
  23.     fldVARBYTES, fldINT32, fldBLOB, fldBLOB, fldBLOB, fldBLOB, fldBLOB,
  24.     fldBLOB, fldBLOB, fldCURSOR);
  25.  
  26.   FldSubTypeMap: array[TFieldType] of Word = (
  27.     0, 0, 0, 0, 0, 0, 0, fldstMONEY, 0, 0, 0, 0, 0, 0, fldstAUTOINC,
  28.     fldstBINARY, fldstMEMO, fldstGRAPHIC, fldstFMTMEMO, fldstOLEOBJ,
  29.     fldstDBSOLEOBJ, fldstTYPEDBINARY, 0);
  30.  
  31.   DataTypeMap: array[0..MAXLOGFLDTYPES - 1] of TFieldType = (
  32.     ftUnknown, ftString, ftDate, ftBlob, ftBoolean, ftSmallint,
  33.     ftInteger, ftFloat, ftBCD, ftBytes, ftTime, ftDateTime,
  34.     ftWord, ftInteger, ftUnknown, ftVarBytes, ftUnknown, ftUnknown);
  35.  
  36.   BlobTypeMap: array[fldstMEMO..fldstTYPEDBINARY] of TFieldType = (
  37.     ftMemo, ftBlob, ftFmtMemo, ftParadoxOle, ftGraphic,
  38.     ftDBaseOle, ftTypedBinary);
  39.  
  40. { TFilterExpr }
  41.  
  42. type
  43.  
  44.   TExprNodeKind = (enField, enConst, enOperator);
  45.  
  46.   PExprNode = ^TExprNode;
  47.   TExprNode = record
  48.     FNext: PExprNode;
  49.     FKind: TExprNodeKind;
  50.     FPartial: Boolean;
  51.     FOperator: CanOp;
  52.     FData: Variant;
  53.     FLeft: PExprNode;
  54.     FRight: PExprNode;
  55.   end;
  56.  
  57.   TFilterExpr = class
  58.   public
  59.     constructor Create(DataSet: TDataSet; Options: TFilterOptions);
  60.     destructor Destroy; override;
  61.     function NewCompareNode(Field: TField; Operator: CanOp;
  62.       const Value: Variant): PExprNode;
  63.     function NewNode(Kind: TExprNodeKind; Operator: CanOp;
  64.       const Data: Variant; Left, Right: PExprNode): PExprNode;
  65.     function GetFilterData(Root: PExprNode): PCANExpr;
  66.   end;
  67.  
  68. { TExprParser }
  69.  
  70.   TExprToken = (etEnd, etSymbol, etName, etLiteral, etLParen, etRParen,
  71.     etEQ, etNE, etGE, etLE, etGT, etLT);
  72.  
  73.   TExprParser = class
  74.   public
  75.     constructor Create(DataSet: TDataSet; const Text: string;
  76.       Options: TFilterOptions);
  77.     destructor Destroy; override;
  78.     property FilterData: PCANExpr;
  79.     property DataSize: Integer;
  80.   end;
  81.  
  82. { TMasterDataLink }
  83.  
  84.   TMasterDataLink = class(TDataLink)
  85.   protected
  86.     procedure ActiveChanged; override;
  87.     procedure CheckBrowseMode; override;
  88.     procedure LayoutChanged; override;
  89.     procedure RecordChanged(Field: TField); override;
  90.   public
  91.     constructor Create(DataSet: TDataSet);
  92.     destructor Destroy; override;
  93.     property FieldNames: string;
  94.     property Fields: TList;
  95.     property OnMasterChange: TNotifyEvent;
  96.     property OnMasterDisable: TNotifyEvent;
  97.   end;
  98.  
  99. function FMTBCDToCurr(const BCD: FMTBcd; var Curr: Currency): Boolean;
  100. function CurrToFMTBCD(Curr: Currency; var BCD: FMTBcd; Precision,
  101.   Decimals: Integer): Boolean;
  102. function SafeArrayToVariant(SafeArray: PVarArray): Variant;
  103.  
  104. implementation
  105.